package com.xujie.property_warranty_system.dto;

import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Min;
import java.time.LocalDate;

/**
 * 设施设备DTO
 */
@Data
public class FacilityDTO {
    
    /**
     * 设备ID（更新时需要）
     */
    private Long id;
    
    /**
     * 设备编号
     */
    @NotBlank(message = "设备编号不能为空")
    private String facilityCode;
    
    /**
     * 设备名称
     */
    @NotBlank(message = "设备名称不能为空")
    private String facilityName;
    
    /**
     * 所在位置
     */
    @NotBlank(message = "所在位置不能为空")
    private String location;
    
    /**
     * 设备类型
     */
    private String facilityType;
    
    /**
     * 制造商
     */
    private String manufacturer;
    
    /**
     * 购买日期
     */
    private LocalDate purchaseDate;
    
    /**
     * 保修期限(月)
     */
    @Min(value = 0, message = "保修期限不能为负数")
    private Integer warrantyPeriod;
    
    /**
     * 设备状态：1-正常，2-维修中，3-报废
     */
    @NotNull(message = "设备状态不能为空")
    private Integer status;
    
    /**
     * 负责人
     */
    private String responsiblePerson;
    
    /**
     * 联系电话
     */
    @Pattern(regexp = "^$|^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String contactPhone;
    
    /**
     * 设备描述
     */
    private String description;
    
    /**
     * 维护周期(天)
     */
    @Min(value = 0, message = "维护周期不能为负数")
    private Integer maintenanceCycle;
    
    /**
     * 上次维护日期
     */
    private LocalDate lastMaintenanceDate;
    
    /**
     * 下次维护日期
     */
    private LocalDate nextMaintenanceDate;
}
